package cn.tedu.store.user.service;

import cn.tedu.store.commons.pojo.user.dto.AddressAddNewDTO;
import cn.tedu.store.commons.pojo.user.dto.AddressUpdateDTO;
import cn.tedu.store.commons.pojo.user.vo.AddressListItemVO;
import cn.tedu.store.commons.pojo.user.vo.AddressStandardVO;
import cn.tedu.store.commons.web.JsonPage;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 用户收货地址业务接口
 *
 * @author RelentlessFlow
 * @version 0.0.1
 */
@Transactional
public interface IAddressService {

    /**
     * 添加新地址
     * @param addressAddNewDTO
     */
    void addNew(AddressAddNewDTO addressAddNewDTO);

    /**
     * 删除地址
     * @param ids 地址id
     */
    void delete(Long[] ids);

    /**
     * 修改现有地址信息
     * @param addressUpdateDTO 新的地址信息
     */
    void updateById(AddressUpdateDTO addressUpdateDTO);

    /**
     * 根据id获取地址详情
     * @param id 地址id
     * @return 地址详情
     */
    AddressStandardVO getStandardById(Long id);

    /**
     * 获取地址列表
     * @return 地址列表
     */
    JsonPage<AddressListItemVO> list(Integer pageNum, Integer pageSize);

}
